package factory.factory_method;


// 咖啡店
public class CoffeStore {
    // 由各个子类工厂提供具体的实例化对象，业务逻辑中只用父类变量接收即可
    private CoffeeFactory factory;

    public void setFactory(CoffeeFactory factory) {
        this.factory = factory;
    }

    public Coffee orderCoffee(){
        // 父类变量调用其指定的方法。
        // 多态思想：具体的实现还是需要看堆内存中具体是哪个子类，业务逻辑中不考虑
        Coffee coffee = factory.createCoffee();

        coffee.addSugar();
        coffee.addMilk();

        return coffee;
    }
}
